home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / java / net / URLEncoder.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  1.1 KB  |  71 lines

  1. package java.net;
  2.  
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.IOException;
  5. import java.io.OutputStreamWriter;
  6. import java.util.BitSet;
  7.  
  8. public class URLEncoder {
  9.    static BitSet dontNeedEncoding = new BitSet(256);
  10.  
  11.    private URLEncoder() {
  12.    }
  13.  
  14.    public static String encode(String var0) {
  15.       ByteArrayOutputStream var1 = new ByteArrayOutputStream(var0.length());
  16.       ByteArrayOutputStream var2 = new ByteArrayOutputStream(10);
  17.       OutputStreamWriter var3 = new OutputStreamWriter(var2);
  18.  
  19.       for(int var4 = 0; var4 < var0.length(); ++var4) {
  20.          char var5 = var0.charAt(var4);
  21.          if (dontNeedEncoding.get(var5)) {
  22.             if (var5 == ' ') {
  23.                var5 = '+';
  24.             }
  25.  
  26.             var1.write(var5);
  27.          } else {
  28.             try {
  29.                var3.write(var5);
  30.                var3.flush();
  31.             } catch (IOException var8) {
  32.                var2.reset();
  33.                continue;
  34.             }
  35.  
  36.             byte[] var6 = var2.toByteArray();
  37.  
  38.             for(int var7 = 0; var7 < var6.length; ++var7) {
  39.                var1.write(37);
  40.                var1.write(Character.forDigit(var6[var7] >> 4 & 15, 16));
  41.                var1.write(Character.forDigit(var6[var7] & 15, 16));
  42.             }
  43.  
  44.             var2.reset();
  45.          }
  46.       }
  47.  
  48.       return var1.toString();
  49.    }
  50.  
  51.    static {
  52.       for(int var0 = 97; var0 <= 122; ++var0) {
  53.          dontNeedEncoding.set(var0);
  54.       }
  55.  
  56.       for(int var1 = 65; var1 <= 90; ++var1) {
  57.          dontNeedEncoding.set(var1);
  58.       }
  59.  
  60.       for(int var2 = 48; var2 <= 57; ++var2) {
  61.          dontNeedEncoding.set(var2);
  62.       }
  63.  
  64.       dontNeedEncoding.set(32);
  65.       dontNeedEncoding.set(45);
  66.       dontNeedEncoding.set(95);
  67.       dontNeedEncoding.set(46);
  68.       dontNeedEncoding.set(42);
  69.    }
  70. }
  71.